Debug And Release Server Versions

SoftwareShield ClientProtector COM Component > Debug and Release Server Versions

## Debug and Release Server Versions

The ClientProtector component is a COM server component contained in a dll. This dll is named SSCProt.dll and you will find it in your \SoftwareShield\bin\ directory.

The SSCProt.dll is the release version of the COM server. That is, it is the dll that you will distribute with your licensed applications to your customers. Also in the SoftwareShield\bin\ directory you will find the SSCProtD.dll which is the debug version of the COM server.

SSCProt.dll and SSCProtD.dll are 100% identical in their interface, including GUIDs, functions, members, event handlers, classes etc. This allows you to simply register one or the other with Windows and without making any changes to your code - immediately be linking to either the release version or the debug version. The debug version offers a great deal of information back to you in a variety of formats in order to help you understand why and how your licensed application behaves in a certain way. For more information about the debugging features available and how to register and un-register server versions see: Controlling Debug Output and Registering Un-registering ClientProtector Servers.

Note that if you use a development environment that creates a wrapper class to provide an additional layer between your code and the raw COM server interface - you still only need to create this class once. You do not need to "import" both server versions or create two wrapper classes since the COM servers interface GUID is identical. All you have to do in order to switch which one your program will link to at run-time is register the correct one with Windows.

Note also that the ClientProtector Reference provides the single source for documentation for both servers. Since the interfaces are named identically and expose exactly the same functions and perform identical operations in exactly the same way, the documentation applies to both servers. The only difference between the debug and release ClientProtector servers is how, when and if additional debugging messages are output during processing.

When linking to the debug server, a dialog will always appear to warn you that you are linking to it and not the release server. This is to ensure you do not accidentally distribute the debug version when you make your final deployment.

When using the debug server, you have three methods of outputting debug information (see below). The level and type of this debug information output is controlled by a parameter you pass to the ClientProtector when you call the StartUp function. While the release server version ignores this parameter - we recommend that when you produce the final build of your software for release, you set this parameter to zero. We also recommend that you use a CRC check in your program to ensure you are always linking to the release version for added security (See: CRC Checking).

When using the debug server, a warning dialog normally appears when you first invoke StartUp to remind you that you are linking to the debug version (to be sure you do not deploy the debug server). However, non-interactive applications may hang or crash if a COM component created from inside them attempts to show a dialog. See: CPDEBUGFLAGS for information on how to suppress this warning dialog.

The remainder of this section informs you how to manage debug output when using the debug server:

- Outputting Debug Dialog Messages

- Outputting Debug Log-Files

- Outputting Debug Strings